var form;
var layer;
//页面初始化时加载Layui框架
layui.use(['form', 'layer', 'laydate'], function () {
    form = layui.form();
    layer = layui.layer;
    //关闭
    var closed = $(".close");
    closed.click(function() {
        var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
        parent.layer.close(index); //再执行关闭
    });
    //监听提交
    form.on('submit(submit)', function(){
        //授权按钮置为不可用
        $("#submit").addClass("layui-btn-disabled");
        submit_form();
    });

    //单击复选框
    $("#menuTable").delegate(":checkbox", "click", function(event) {
        checkPrev(this);
        checkSub(this);
        notCheckPrev(this);
        event.stopPropagation();
    });
});
/**
 * 选中祖先复选框
 */
function checkPrev(element) {
    if (!element) {
        return;
    }
    var isChecked = $(element).prop("checked");
    if (isChecked) {
        var listCheckbox = $(element).parents("ul").parent().find(":checkbox:eq(0)");
        //选中父元素
        listCheckbox.prop("checked", true);
    }
}
/**
 * 后代复选框全部取消勾选时，取消勾选祖复选框
 * @param element
 */
function notCheckPrev(element) {
    var listCheckbox = $(element).parent().parent().parent().find(":checkbox");
    var allNotCheck = true;
    for (var i = 0; i < listCheckbox.length; i++) {
        var isCheck = $(listCheckbox).eq(i).prop("checked");
        if (isCheck) {
            allNotCheck = false;
        }
    }
    var provCheckbox = $(element).parents("ul").parent().find(":checkbox:eq(0)");
    if (allNotCheck) {
        provCheckbox.prop("checked", false);
    }

}
/**
 * 选中后代复选框
 */
function checkSub(element) {
    if (!element) {
        return;
    }
    var isChecked = $(element).prop("checked");
    var listCheckbox = $(element).closest("li").find(":checkbox");
    if (isChecked) {
        listCheckbox.prop("checked", function(i, val) {
            if (!$(this).prop("disabled")) {
                return true;
            }
        });
    } else {
        listCheckbox.prop("checked", false);
    }
}
/**
 * 提交信息
 * @return
 */
function submit_form() {
    //得到角色id
    var roleId = $("#roleId").val();
    if (!roleId) {
        return;
    }
    var menuIds = "";
    //得到所有选择模版
    var selectedCheckBox = $("#menuTable").find(":checkbox");
    selectedCheckBox.each(function(i) {
        if ($(this).prop("checked")) {
            menuIds += '&menuIds=' + $(this).attr("value");
        }
    });
    $.ajax({
        url : basePath + "role/addRoleMenu.action",
        type : "post",
        dataType : 'text',
        data : menuIds + "&id=" + roleId,
        success : function(data) {
            if (data != null && data != "" && data == 1) {
                layer.open({
                    title: '提示',
                    icon: 1,
                    content: '角色授权成功!'
                });
            } else {
                layer.open({
                    title: '错误',
                    icon: 2,
                    content: '角色授权失败!'
                });
            }
            //授权按钮置为可用
            $("#submit").removeClass("layui-btn-disabled");
        }
    });
}